home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1998 / MacHack 1998.toast / Sessions / Completions / Completions Source / Tasks / Task.h < prev    next >
Encoding:
Text File  |  1998-06-11  |  630 b   |  48 lines  |  [TEXT/CWIE]

  1. // Task.h
  2.  
  3. #ifndef Task_h
  4. #define Task_h
  5.  
  6. #ifndef Assert_h
  7. #include "Assert.h"
  8. #endif
  9. #ifndef DeferredTaskTime_h
  10. #include "DeferredTaskTime.h"
  11. #endif
  12.  
  13. class TaskLife;
  14.  
  15. class Task
  16.   {
  17.     friend class TaskLife;
  18.     
  19.     private:
  20.         TaskLife *life;
  21.     
  22.         // not implemented:
  23.             Task( const Task& );
  24.             void operator=( const Task& );
  25.             
  26.     protected:
  27.         Task()
  28.           : life( 0 )
  29.           {
  30.             Assert( !DeferredTaskTime::IsNow() );
  31.           }
  32.  
  33.         ~Task()
  34.           {
  35.             Assert( life == 0 );
  36.             Assert( !DeferredTaskTime::IsNow() );
  37.           }
  38.         
  39.         virtual void Launch() = 0;
  40.         virtual void Kill() = 0;
  41.  
  42.         virtual void AtCompletion()        {}
  43.         
  44.         void Complete();
  45.   };
  46.  
  47. #endif
  48.